package com.ride.dao;

import java.util.List;

import com.ride.model.Profile;
import com.ride.model.Operator;

/**
 * Interface zum Zugriff auf Profile-
 *
 * @version $LastChangedRevision: 16 $
 *          <p/>
 *          $LastChangedBy: marcel.menze@gmail.com $
 *          <p/>
 *          $LastChangedDate: 2011-04-05 12:34:26 +0000 (Tue, 05 Apr 2011) $
 */
public interface ProfileDao {

    /**
     * Ermittelt ein Profil anhand der ID.
     *
     * @param id ID
     * @return Profil
     */
    public Profile findById(Long id);

    /**
     * Erzeugt ein neues Profil.
     *
     * @param profile Profil
     */
    void persist(Profile profile);

    /**
     * Aktaulisiert  vorhandenes Profil.
     *
     * @param profile Profil
     */
    void update(Profile profile);

    /**
     * Löscht ein Profil.
     *
     * @param profile Profil
     */
    void delete(Profile profile);


    /**
     * Ermittelt Profile anhand des Vornamen und Nachnamen.
     *
     * @param firstName Vorname
     * @param lastName  Nachname
     * @return Liste mit Benutzern
     */
    public List<Operator> findByFirstnameAndLastname(String firstName, String lastName);
}

